package day_2022_4_to_7.nowcoder;

/**
 * 二维数组中的查找
 * @author haomin
 * @date 2022/04/09 16:11
 **/
public class SearchIN2DArr_1f {
    public boolean Find1(int target, int [][] array) {
        if(array.length == 0 ){
            return false;
        }
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length; j++) {
                if(array[i][j] == target){
                    return true;
                }
            }
        }
        return false;
    }

    public boolean Find2(int target, int [][] array) {
        if(array.length == 0 ){
            return false;
        }

        int row = 0;
        int col = array[0].length - 1;
        while(row < array.length && col >= 0){
            // array[row][col] 一定是当前行最大的
            if(target < array[row][col]){
                // 排除当前列
                col --;
            }else if(target > array[row][col]){
                // 排除当前行
                row ++;
            }else {
                return true;
            }
        }
        return false;
    }
}